home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / h / range.h < prev    next >
Encoding:
C/C++ Source or Header  |  1985-01-23  |  2.4 KB  |  78 lines

  1. /*
  2. **  Definitions for the range table.
  3. **
  4. **    Version:
  5. **        @(#)range.h    8.2    1/15/85
  6. */
  7.  
  8. # ifndef MAXRANGE
  9.  
  10. # define    MAXRANGE    (MAXVAR + 1)
  11.  
  12.  
  13. /*
  14. **    DESCRIPTOR struct
  15. **
  16. **    The DESCRIPTOR struct is initialized by OPENR to describe any
  17. **    open relation.  The first part of the descriptor is the tuple
  18. **    from the RELATION relation.  The remainder contains some magic
  19. **    numbers and a template initialized from the ATTRIBUTE relation.
  20. **
  21. **    This structure also defines the range table.
  22. */
  23.  
  24. struct descriptor
  25. {
  26.     struct relation    reldum;
  27.         /*the above part of the descriptor struct is identical
  28.           to the relation struct and the inormation in this
  29.           part of the struct is read directly from the
  30.           relation tuple by openr.  the rest of the descriptor
  31.           struct is calculated by openr.  */
  32.     char    relvname[MAXNAME];    /* range variable name */
  33.     i_2    relfp;        /*filep for relation , if open    */
  34.     i_2    relopn;        /*indicates if relation is really open*/
  35.     tid_type reltid;    /*when relation is open, this indicates
  36.                   the tid in the relation relation for
  37.                   this relation */
  38.     i_4    reladds;    /*no. of additions of tuples during this open*/
  39.     i_2    reloff[MAXDOM];    /*reloff[i] is offset to domain i     */
  40.     c_1    relfrmt[MAXDOM]; /* format of domain i
  41.                  ** INT, FLOAT, or CHAR  */
  42.     c_1    relfrml[MAXDOM]; /* relfrml[i] is an unsigned integer
  43.                   which indicates length
  44.                   in bytes of domain */
  45.     c_1    relxtra[MAXDOM]; /*relxtra[i] is non-zero if domain i is
  46.                  ** a key domain for the relation */
  47.     c_1    relgiven[MAXDOM]; /*cleared by openr and set before
  48.                   call to find to indicate value of this
  49.                   domain has been supplied in the key*/
  50.     struct descriptor *relbtree;    /* used to store info about
  51.                     secondary btree stucture */
  52.     int    btree_fd;    /* contains pointer to btree file */
  53. };
  54.  
  55. typedef struct descriptor    DESC;
  56.  
  57. /*
  58. ** Various modes to openr.
  59. */
  60. # define    OR_READ        0    /* Open relation for reading */
  61. # define    OR_WRITE    2    /* Open relation for writing */
  62. # define    OR_RELTID    -1    /* Only get relation relation 
  63.                     ** tuple and tid only */
  64. # define    OR_AREAD    -2    /* Open for reading after OR_RELTID */
  65. # define    OR_AWRITE    -3    /* Open for writing after OR_RELTID */
  66. # define    OR_REREAD    -4    /* Open for reading after openr()/closer() */
  67. # define    OR_REWRITE    -5    /* Open for writing after openr()/closer() */
  68.  
  69.  
  70. typedef struct
  71. {
  72.     DESC    *rngvdesc;    /* pointer to descriptor for this var */
  73.     bool    rngvmark;    /* send if marked */
  74. }  RANGEV;
  75.  
  76.  
  77. # endif MAXRANGE
  78.